<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml" xmlns:shiro="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <div th:insert="common.html"></div>
</head>
<body>
<div id="toolbar">
    <input type="button" value="添加" onclick="toAddRole()" class="btn btn-primary">
</div>
<table id="table"></table>
<script>
    $('#table').bootstrapTable({
        url: '/roleController/findRoleList',//访问后台获取数据的url
        toolbar: '#toolbar',//工具按钮用哪个容器
        method: 'post',
        contentType : "application/x-www-form-urlencoded",//请求参数方式
        striped: true,//是否显示行间隔色
        cache: false, //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        sortable: true, //是否启用排序
        sortOrder: "asc", //排序方式
        pagination: false,//是否显示分页（*）
        //sidePagination: "client",//分页方式：client客户端分页，server服务端分页（*）
        //pageNumber: 1,  //初始化加载第一页，默认第一页,并记录
        //pageSize: 3,  //每页的记录行数（*）
        //pageList: [3, 5, 7, 10], //可供选择的每页的行数（*）
        search: true,//是否显示表格搜索,默认false
        cardView: false,//是否显示详细视图
        detailView: false,//是否显示父子表
        showToggle: true,//是否显示详细视图和列表视图的切换按钮
        clickToSelect: true,//是否启用点击选中行
        showRefresh: true,//是否显示刷新按钮
        strictSearch: true,
        showColumns: true,//是否显示所有的列（选择显示的列）
        columns: [{
            checkbox: true,
            visible: true //是否显示复选框
        },{
            field: 'roleId', //field对应的实体类的属性名
            title: '角色id',// title 对应的是表头
            sortable: true
        }, {
            field: 'roleName',
            title: '角色名称',
            sortable: true
        },{
            title: '操作',
            width: 120,
            align: 'center',
            valign: 'middle',
            formatter:function(value,row,index){
                var roleId = row.roleId;// js 数组的方法，将数组里面的值根据join('abc') abc进行拼接
                return [
                    '<a class="btn btn-xs blue" title="编辑" href="javascript:toUpdate('+roleId+')" ><span class="glyphicon glyphicon-pencil"></span></a>',
                    '<a class="btn btn-xs red" title="删除" href="javascript:deleteRole('+roleId+')"><span class="glyphicon glyphicon-remove"></a>'].join('');
            }
        },]
    });
    //刷新表格
    function getData(){
        $('#table').bootstrapTable("refresh")//refresh 刷新
    }
    //添加角色
    function toAddRole(){
        BootstrapDialog.show({
            type : BootstrapDialog.TYPE_SUCCESS,//弹出框类型 颜色
            title : '添加角色 ',//load jquery的方法
            message : $('<div></div>').load("/roleController/toAddRole"),//$() 都是jquery对象
            // size : BootstrapDialog.SIZE_SMALL,//size为小，默认的对话框比较宽
            buttons : [ {// 设置关闭按钮
                label : '关闭',
                action : function(dialogItself) {//点击按钮方法
                    dialogItself.close();
                }
            },{
                label : '确定',
                cssClass:'btn-success',
                action : function(dialogItself) {//点击按钮方法
                    //获取权限树
                    var treeObj = $.fn.zTree.getZTreeObj("tree");
                    //获取被选中的节点的对象集合
                    var nodes = treeObj.getCheckedNodes(true);
                    if(nodes.length <=0){
                        alert("请选择权限");
                        return;
                    }
                    console.log(nodes)
                    //定义数组，用来装载权限的id
                    var nodesIds = [];
                    for(var i=0; i<nodes.length; i++){
                        nodesIds.push(nodes[i].id);
                    }
                    $.ajax({
                        url:"/roleController/saveRole",
                        data:{roleName:$("#roleName").val(),nodesIds:nodesIds},//参数
                        dataType:"text",
                        type:"post",
                        async:false,
                        success:function(data){
                            if(data=='true'){
                                alert("添加成功");
                                dialogItself.close();
                                getData();
                            }else{
                                alert("添加失败");
                            }
                        },
                        error:function(){
                            alert("系统错误，请联系管理员");
                        }
                    })
                }
            } ],
            // 对话框关闭时带入callback方法
        });
    }
    //修改角色
    function toUpdate(roleId){
        BootstrapDialog.show({
            type : BootstrapDialog.TYPE_SUCCESS,//弹出框类型 颜色
            title : '添加角色 ',//load jquery的方法
            message : $('<div></div>').load("/roleController/toUpdate/"+roleId),//$() 都是jquery对象
            // size : BootstrapDialog.SIZE_SMALL,//size为小，默认的对话框比较宽
            buttons : [ {// 设置关闭按钮
                label : '关闭',
                action : function(dialogItself) {//点击按钮方法
                    dialogItself.close();
                }
            },{
                label : '确定',
                cssClass:'btn-success',
                action : function(dialogItself) {//点击按钮方法
                    //获取权限树
                    var treeObj = $.fn.zTree.getZTreeObj("tree");
                    //获取被选中的节点的对象集合
                    var nodes = treeObj.getCheckedNodes(true);
                    if(nodes.length <=0){
                        alert("请选择权限");
                        return;
                    }
                    console.log(nodes)
                    //定义数组，用来装载权限的id
                    var nodesIds = [];
                    for(var i=0; i<nodes.length; i++){
                        nodesIds.push(nodes[i].id);
                    }
                    $.ajax({
                        url:"/roleController/updateRole",
                        data:{roleId:$("#roleId").val(),roleName:$("#roleName").val(),nodesIds:nodesIds},//参数
                        dataType:"text",
                        type:"post",
                        async:false,
                        success:function(data){
                            if(data=='true'){
                                alert("修改成功");
                                dialogItself.close();
                                getData();
                            }else{
                                alert("修改失败");
                            }
                        },
                        error:function(){
                            alert("系统错误，请联系管理员");
                        }
                    })
                }
            } ],
            // 对话框关闭时带入callback方法
        });
    }
    //删除角色
    function deleteRole(roleId){
        if(confirm("是否确认删除")){//用户确定后执行删除操作
            $.ajax({
                url:"/roleController/deleteRole/"+roleId,
                data:{},//参数
                dataType:"text",
                type:"post",
                async:false,
                success:function(data){
                    if(data=='true'){
                        alert("删除成功");
                        getData();//刷新表格
                    }else{
                        alert("删除失败");
                    }
                },
                error:function(){
                    alert("系统错误，请联系管理员");
                }
            })
        }
    }
</script>
</body>
</html>